Package de.yaams.extensions.rgssproject.database.tabs

Source Code of de.yaams.extensions.rgssproject.database.tabs.ClassTab

/**
*
*/
package de.yaams.extensions.rgssproject.database.tabs;

import org.jruby.RubyObject;
import org.jruby.runtime.builtin.IRubyObject;

import de.yaams.extensions.rgssproject.RGSSProjectHelper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper;
import de.yaams.extensions.rgssproject.database.RGSS1Helper.Type;
import de.yaams.extensions.rgssproject.database.form.FormTable;
import de.yaams.extensions.rgssproject.database.form.RubyForm;
import de.yaams.extensions.rgssproject.database.form.list.FormDBList;
import de.yaams.extensions.rgssproject.database.form.list.FormLearningList;
import de.yaams.maker.helper.gui.form.FormEmpty;
import de.yaams.maker.helper.gui.form.FormInfo;
import de.yaams.maker.helper.gui.form.core.FormBuilder;
import de.yaams.maker.helper.gui.form.core.FormHeader;
import de.yaams.maker.helper.language.I18N;
import de.yaams.maker.programm.project.Project;

/**
* @author abt
*
*/
public class ClassTab extends GTab {
  private static final long serialVersionUID = -7224278425132595022L;

  /**
   * Create a new ItemTab
   *
   * @param project
   */
  public ClassTab(final Project project) {
    super(project);

    loadFile(Type.CLASS);
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.extensions.genericLoader.GTab#getInternContent(int)
   */
  @Override
  public void buildForm(FormBuilder form, int id) {
    // prepare
    RubyObject act = elements.get(id).getObject();

    // build basics
    form.addHeader("basic", new FormHeader(I18N.t("Grundlegenes"), getIcon() + "_info").setColumn(4));
    form.addElement("basic.name", RubyForm.getString(I18N.t("Name"), "@name", act));
    form.addElement("basic.position", RubyForm.getComboBoxNum("Position", new String[] { "0", "1", "2" }, new String[] { "Front",
        "Middle", "Rear" }, act, "@position"));

    form.addHeader("supported", new FormHeader(I18N.t("Auswirkungen"), "class").setColumn(6));
    form.addElement(
        "supported.weapon",
        new FormDBList(project, Type.WEAPON, act.getInstanceVariable("@weapon_set"), I18N
            .t("Angabe der Waffen mit denen sich die Klasse ausrüsten kann.")));
    form.addElement(
        "supported.armor",
        new FormDBList(project, Type.ARMOR, act.getInstanceVariable("@armor_set"), I18N
            .t("Angabe der Rüstungen mit denen sich die Klasse ausrüsten kann.")));
    form.addElement("supported.learn", new FormLearningList(project, act.getInstanceVariable("@learnings")).setSorting(1));

    // elements
    form.addHeader("ele", new FormHeader(RGSS1Helper.getName(Type.ELEMENT), RGSS1Helper.getIcon(Type.ELEMENT)).setCollapsed(true)
        .setColumn(4).setSorting(4));

    form.addElement("ele.0ele", new FormInfo("", I18N.t("Elemental effectiveness")));
    form.addElement("ele.0stat", new FormInfo("", I18N.t("Status effectiveness")));

    int e = RGSS1Helper.get(getProject(), Type.ELEMENT).size();
    IRubyObject eTable = act.getInstanceVariable("@element_ranks");
    int s = RGSS1Helper.get(getProject(), Type.STATUS).size();
    IRubyObject sTable = act.getInstanceVariable("@state_ranks");
    int l = e > s ? e : s;

    // run over all
    for (int i = 1; i < l; i++) {
      // add elements
      if (e > i) {
        form.addElement("ele." + i + "ele", new FormTable(RGSS1Helper.get(getProject(), Type.ELEMENT).get(i).getName(), eTable, i,
            0));
      } else {
        form.addElement("ele." + i + "ele", new FormEmpty());
      }

      // add status
      if (s > i) {
        form.addElement("ele." + i + "stat", new FormTable(RGSS1Helper.get(getProject(), Type.STATUS).get(i).getName(), sTable, i,
            0));
      } else {
        form.addElement("ele." + i + "stat", new FormEmpty());
      }
    }

  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.extensions.genericLoader.GTab#getIcon(java.lang.Integer)
   */
  @Override
  public Object getIcon(final Integer o) {
    return getIcon();
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.extensions.genericLoader.GTab#getText(java.lang.Integer)
   */
  @Override
  public Object getText(final Integer value) {
    return elements.get(value).getName();
  }

  /*
   * (non-Javadoc)
   *
   * @see de.yaams.extensions.genericLoader.GTab#createObject()
   */
  @Override
  public RubyObject createObject() {
    return (RubyObject) RGSSProjectHelper.getInterpreter(project).runScriptlet("return RPG::Class.new");
  }

}
TOP

Related Classes of de.yaams.extensions.rgssproject.database.tabs.ClassTab

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.